package com.lancoo.ccas53.arrangecourse.AlgDataSource.DataService;


import com.lancoo.ccas53.entity.RuleUsable;
import com.lancoo.ccas53.entity.TaskInfo;
import com.lancoo.ccas53.pojo.dto.*;
import com.lancoo.ccas53.pojo.vo.Campus;
import com.lancoo.ccas53.pojo.vo.WeekDateVo;

import java.util.List;

/**
 * @Description 数据服务接口
 * @Author Fortysun
 * @Date 2023/4/13 21:24
 **/
public interface DataService {
    /**
     * 从每个院系选几个教师，设置禁排、一定排
     * @return
     */
    List<ArrangeTeacherRuleDto> getTeacherRuleList();
    /**
     * 从每个院系选几个课程，设置禁排
     * @return
     */
    List<ArrangeCourseRuleDto> getCourseRuleList();
    /**
     * 获取每个校区的教室禁排信息列表
     * @return
     */
    List<ArrangeRoomRuleDto> getRoomRuleList(String campusId);
    /**
     * 获取教师信息列表
     * @return
     */
    List<ArrangeRoomDto> getRoomList(String campusId);
    /**
     * 获取课时信息列表
     * @return
     */
    List<ArrangePeriod> getTimeslotList();
    /**
     * 获取所有的教学班信息列表
     * @return
     */
    List<ArrangeTeachingClassDto> getTeachingClassList(String campusId);

    /**
     * 获取校区信息列表
     * @return
     */
    List<Campus> getCampusList();

    /**
     * 获取基本规则信息
     * @return
     */
    List<RuleUsable> getBaseRuleList();


//    RuleTeacherSetting getTeacherSetting(Integer taskId);
    WeekDateVo getTermWeeks(Integer taskId);
    TaskInfo getTaskInfo(Integer taskId);
}
